package BNS.surveys;

import java.rmi.*;

/* An example remote interface, which is needed for the ColoringGame game.
It specifies what methods the ColoringPersona may access, and thus determines 
what information can be passed to the central game coordinator on the server.
<p>
The designer is completely free to write this interface.
The only reason it is needed is that RMI requires it as a statement of 
contract between the client and server. It would be nice if this could be 
generated automatically since it really is not a contract between the user 
and the original developers of the BNS software. It may be possible to do this 
using apt (the Annotation Processor Tool). Volunteers please apply!
</p><p>
Until then, writing this file by hand is at least useful in crystalizing
your design thinking. 
*/
public interface SurveyGameInterface extends Remote {

	/** used to change state of a node to a new color.
	@param nodeID the identifying number of the node in the game graph.
	The caller must be the client operating that node. 
	@param color an int indicating the new color of the node.
	@return indicates success at making the change.
	It returns true iff the game is not over, the game is not paused, 
	the nodeID looks legitimate, and the color is in {0, 1, 2}. 
	*/
	public boolean reply(int nodeID, int qNumber, String answer) throws RemoteException;
		
	}
